﻿using Black.Minecraft.Editor.ViewModels.Core;
using Black.Minecraft.Editor.ViewModels.DataModels;
using System.Windows.Input;

namespace Black.Minecraft.Editor.ViewModels
{
    /// <summary>
    /// ViewModel pour la gestion des options
    /// </summary>
    public class OptionsViewModel : BaseViewModel
    {
        #region Propriétés

        /// <summary>
        /// Obtient la commande de fermeture
        /// </summary>
        public ICommand CloseCommand
        {
            get
            {
                return (this._closeCommand);
            }
        }

        /// <summary>
        /// Obtient la liste des options de l'application
        /// </summary>
        public OptionsDataModel Options
        {
            get
            {
                return (MainViewModel.Instance.Options);
            }
        }

        #endregion

        #region Variables d'instances

        private RelayCommand _closeCommand;

        #endregion

        #region Constructeurs

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        public OptionsViewModel()
            : base()
        {
        }

        #endregion

        #region Fonctions protégées

        /// <summary>
        /// Initialise les commandes
        /// </summary>
        protected override void OnInitializeCommand()
        {
            this._closeCommand = new RelayCommand(this.OnCloseCommandExecute);
        }

        #endregion

        #region Fonctions privées

        /// <summary>
        /// Se produit sur la commande de sauvegarde
        /// </summary>
        /// <param name="parameter">Paramètre de la commande</param>
        private void OnCloseCommandExecute(object parameter)
        {
            MainViewModel.Instance.Options.Save();
            MainViewModel.Instance.SaveServers();
            MainViewModel.Instance.ClosePopup();
        }

        #endregion
    }
}
